home *** CD-ROM | disk | FTP | other *** search
/ Software USA 3 #11 / Software USA Volume 3.11.iso / mac / Games / World Builder / Ray's World Builder Demo / "Creature Room" Code < prev    next >
Text File  |  1995-11-27  |  23KB  |  375 lines

  1. By Ray R. Dunakin III
  2.  
  3. This is the complete scene code for the scene titled “Creature Room.” It is followed by a breakdown of the code into sections, with explanations of each section.
  4.  
  5. ********************************************************
  6.  
  7. IF{LOOP#=0}OR{TEXT$=LOOK}THEN
  8.     PRINT{You are in an empty room. There is a large screen of some sort on the far wall. The exit is NORTH.}
  9.     IF{STAIRS.2>SCENE@}THEN
  10.         PRINT{...................................}
  11.         PRINT{There is a stairway going UP.}
  12.     END
  13.     PRINT{...................................}
  14.     PRINT{You are facing SOUTH.}
  15.     IF{ROACH.1=SCENE@}THEN
  16.         PRINT{...................................}
  17.         PRINT{There is a Big Mama Roach in the middle of the room!}
  18.         PRINT{The Big Mama Roach is an Object. Its actions, and your interaction with it, are controlled by the scene code.}
  19.     END
  20. END
  21. IF{R1#<1}AND{COCKROACH>SCENE@}THEN
  22.     PRINT{...................................}
  23.     LET{R1#=1}
  24.     SOUND{WOOSH.1}
  25.     MOVE{SMOKE.1}TO{SCENE@}
  26.     MOVE{SMOKE.2}TO{SCENE@}
  27.     MOVE{SMOKE.1}TO{STORAGE@}
  28.     MOVE{SMOKE.3}TO{SCENE@}
  29.     MOVE{SMOKE.2}TO{STORAGE@}
  30.     MOVE{SMOKE.4}TO{SCENE@}
  31.     MOVE{SMOKE.3}TO{STORAGE@}
  32.     MOVE{ROACH.1}TO{SCENE@}
  33.     MOVE{SMOKE.4}TO{STORAGE@}
  34.     PRINT{Suddenly a Big Mama Roach appears in a flash of fire and smoke, and she looks pissed!}
  35.     PRINT{BIG MAMA: "You'll pay for the way you treated my baby, human scum!"}
  36.     SOUND{ROAR}
  37. EXIT
  38. IF{CLICK$=SCREEN.1}OR{CLICK$=SCREEN.2}OR{CLICK$=CREATURE.BUTTON}OR{CLICK$=ROACH.1}THEN
  39.     PRINT{...................................}
  40. END
  41. IF{CLICK$=SCREEN.}OR{CLICK$=CREATURE.BUTTON}THEN
  42.     IF{COCKROACH=SCENE@}THEN
  43.         PRINT{You can't reach it, the cockroach is blocking the way.}
  44.     EXIT
  45.     IF{ROACH.1=SCENE@}THEN
  46.         PRINT{You can't reach it, the Big Mama Roach blocks the way.}
  47.     EXIT
  48.     IF{CLICK$=CREATURE.BUTTON}THEN
  49.         MOVE{CREATURE.BUTTON}TO{STORAGE@}
  50.         SOUND{BUTTON-SND.1}
  51.         MOVE{CREATURE.BUTTON}TO{SCENE@}
  52.         IF{SCREEN.2=SCENE@}THEN
  53.             MOVE{SCREEN.2}TO{STORAGE@}
  54.             PRINT{The monitor displays a picture of a rocket.}
  55.         EXIT
  56.     EXIT
  57. END
  58. IF{TEXT$=HAKO}THEN
  59.     PRINT{...................................}
  60.     IF{SCREEN.2>SCENE@}THEN
  61.         SOUND{BOING}
  62.         IF{STAIRS.2=SCENE@}THEN
  63.             MOVE{STAIRS.2}TO{STORAGE@}
  64.             PRINT{A passage suddenly appears in the wall! There is a stairway leading UP.}
  65.         EXIT
  66.         MOVE{STAIRS.2}TO{SCENE@}
  67.         PRINT{The stairway is hidden once again.}
  68.     EXIT
  69. END
  70. IF{TEXT$=UP}THEN
  71.     IF{STAIRS.2>SCENE@}THEN
  72.         MOVE{PLAYER@}TO{TOLL BOOTH}
  73.     EXIT
  74. END
  75. IF{TEXT$=SHOOT}OR{TEXT$=FIRE}OR{TEXT$=SWING}OR{TEXT$=THROW}OR{TEXT$=HIT}OR{THEXT$=KICK}THEN
  76.     PRINT{...................................}
  77.     IF{ROACH.1=SCENE@}THEN
  78.         IF{TEXT$=SHOOT}OR{TEXT$=FIRE}THEN
  79.             IF{PISTOL>PLAYER@}THEN
  80.                 PRINT{You don't have a gun.}
  81.             EXIT
  82.             SOUND{GUNSHOT}
  83.             SOUND{ROAR}
  84.             PRINT{Your bullet just bounces off the roach's thick exoskeleton!}
  85.             PRINT{The Big Mama Roach snaps her mandibles at you!}
  86.             IF{RANDOM#>35}THEN
  87.                 SOUND{SMACK}
  88.                 PRINT{A hit! The razor sharp pincers tear your flesh!}
  89.                 LET{PHYS.HIT.CUR#=PHYS.HIT.CUR#-40}
  90.             EXIT
  91.             SOUND{SWISH}
  92.             PRINT{A miss!}
  93.         EXIT
  94.         SOUND{SMACK}
  95.         PRINT{Your attack fails! The blasted bug's exoskeleton is too tough!}
  96.         PRINT{The Big Mama Roach snaps her mandibles at you!}
  97.         IF{RANDOM#>15}THEN
  98.             SOUND{SMACK}
  99.             PRINT{A hit! The razor sharp pincers tear your flesh!}
  100.             LET{PHYS.HIT.CUR#=PHYS.HIT.CUR#-45}
  101.         EXIT
  102.         SOUND{SWISH}
  103.         PRINT{A miss!}
  104.     EXIT
  105. END
  106. IF{TEXT$=TALK}THEN
  107.     PRINT{...................................}
  108.     IF{ROACH.1=SCENE@}THEN
  109.         PRINT{BIG MAMA: "The only thing I have to say is, 'Die, soft one!'"}
  110.     EXIT
  111.     IF{COCKROACH=SCENE@}THEN
  112.         PRINT{It's just a little cockroach, it can't talk.}
  113.     EXIT
  114. END
  115. IF{TEXT$=GIVE}OR{TEXT$=OFFER}THEN
  116.     PRINT{...................................}
  117.     IF{ROACH.1=SCENE@}THEN
  118.         IF{TEXT$=CLIPPING}OR{TEXT$=AD}THEN
  119.             IF{CLIPPING>PLAYER@}THEN
  120.                 PRINT{You don't have the clipping.}
  121.             EXIT
  122.             MOVE{CLIPPING}TO{STORAGE@}
  123.             MOVE{PHONE.1}TO{SCENE@}
  124.             PRINT{The Roach takes the clipping and reads it eagerly, then whips out a cellular phone.}
  125.             PRINT{BIG MAMA: "Hello, Mr. Shapiro? About that job... you bet I'm qualified... yeah, let's do lunch."}
  126.             SOUND{TONES.2}
  127.             SOUND{SILENCE.1}
  128.             SOUND{SILENCE.1}
  129.             SOUND{SILENCE.1}
  130.             SOUND{SILENCE.1}
  131.             SOUND{SILENCE.1}
  132.             SOUND{SILENCE.1}
  133.             SOUND{SILENCE.1}
  134.             SOUND{SILENCE.1}
  135.             SOUND{SILENCE.1}
  136.             SOUND{SILENCE.1}
  137.             SOUND{SILENCE.1}
  138.             SOUND{SILENCE.1}
  139.             PRINT{BIG MAMA: "This is your lucky day, human. I was born for a job like that! See ya on CNN, baby!"}
  140.             MOVE{PHONE.1}TO{STORAGE@}
  141.             MOVE{ROACH.1}TO{STORAGE@}
  142.             PRINT{The Big Mama Roach puts away the phone, grabs her briefcase and Armani suit, and leaves.}
  143.         EXIT
  144.         PRINT{BIG MAMA: "Your pathetic offerings mean nothing to me, soft one! Only your death will bring me joy!"}
  145.     EXIT
  146. END
  147. IF{TEXT$=SEARCH}THEN
  148.     PRINT{...................................}
  149.     IF{COCKROACH=SCENE@}THEN
  150.         PRINT{The cockroach is a Character. It is a simple creature, capable of limited behavior such as fighting or running, and it's very weak and easy to kill.}
  151.         PRINT{This makes it perfect to use as a Character. A more complex creature should be an Object.}
  152.     EXIT
  153. END
  154.  
  155. ****************End of code***********************
  156.  
  157. In this scene, there is a small cockroach on the floor when the player first comes into the room.  The player cannot reach the monitor and button on the other side of the room while the cockroach is there, so he must first kill the cockroach. The cockroach is an actual Character. After the cockroach is killed, a giant roach appears in a puff of smoke. The giant roach is an Object, and it too must be defeated by giving it a newspaper clipping before the player can reach the important objects across the room.
  158.  
  159. After the giant roach is gone, the player can turn on the monitor, which shows a picture of a rocket. When the player enters the magic word while the rocket is visible, a secret doorway opens, revealing stairs that go up to the next room. 
  160.  
  161. The code below handles the scene description, which changes depending on the circumstances in the scene:
  162.  
  163. IF{LOOP#=0}OR{TEXT$=LOOK}THEN
  164.     PRINT{You are in an empty room. There is a large screen of some sort on the far wall. The exit is NORTH.}
  165.     IF{STAIRS.2>SCENE@}THEN
  166.         PRINT{...................................}
  167.         PRINT{There is a stairway going UP.}
  168.     END
  169.     PRINT{...................................}
  170.     PRINT{You are facing SOUTH.}
  171.     IF{ROACH.1=SCENE@}THEN
  172.         PRINT{...................................}
  173.         PRINT{There is a Big Mama Roach in the middle of the room!}
  174.         PRINT{The Big Mama Roach is an Object. Its actions, and your interaction with it, are controlled by the scene code.}
  175.     END
  176. END
  177.  
  178. >>>The first statement in the code above is true if the player has just come into the scene, or has entered the word “look.” If either condition is true, then some text is printed that provides a basic description of the scene. Then a nested statement determines if the secret staircase is visible, and if so, prints some more text describing that. “STAIRS.2” is an object that hides the secret staircase. If it is not in the scene, then the staircase is visible.
  179.  
  180. Next, some text is printed to tell the player which direction he is facing. Following that is another nested statement that checks to see if the giant roach, ROACH.1, is in the scene. If so, then additional text is printed describing it.
  181.  
  182. All the statements in the section above close with END, so that the game will automatically tell the player if any dropped mobile objects are in the scene.<<<
  183.  
  184.  
  185. The code below creates the giant roach’s grand entrance:
  186.  
  187. IF{R1#<1}AND{COCKROACH>SCENE@}THEN
  188.     PRINT{...................................}
  189.     LET{R1#=1}
  190.     SOUND{WOOSH.1}
  191.     MOVE{SMOKE.1}TO{SCENE@}
  192.     MOVE{SMOKE.2}TO{SCENE@}
  193.     MOVE{SMOKE.1}TO{STORAGE@}
  194.     MOVE{SMOKE.3}TO{SCENE@}
  195.     MOVE{SMOKE.2}TO{STORAGE@}
  196.     MOVE{SMOKE.4}TO{SCENE@}
  197.     MOVE{SMOKE.3}TO{STORAGE@}
  198.     MOVE{ROACH.1}TO{SCENE@}
  199.     MOVE{SMOKE.4}TO{STORAGE@}
  200.     PRINT{Suddenly a Big Mama Roach appears in a flash of fire and smoke, and she looks pissed!}
  201.     PRINT{BIG MAMA: "You'll pay for the way you treated my baby, human scum!"}
  202.     SOUND{ROAR}
  203. EXIT
  204.  
  205. >>>The statement above test for two conditions. First, if variable R1# is less than one, and second, if the “cockroach” Character is not in the scene. One the player has killed the cockroach, then the very next move the player makes will cause both conditions in this statement to be true, and the statement will be executed. Variable R1# is set to one, making it impossible for the giant roach to make more than one entrance. The a sound is player, and four objects are moved to the scene one by one. Each of the SMOKE objects is a drawing that depeicts various stages of a billowing mushroom cloud of smoke. SMOKE.1 is moved to the scene first, then SMOKE.2 is moved to the scene, and SMOKE.1 is returned to storage. Then SMOKE.3 is moved to the scene, and SMOKE.2 is returned to storage. Then SMOKE.4 is moved to the scene, and SMOKE.3 is returned to storage. Finally, the giant roach, ROACH.1, is moved to the scene, and SMOKE.4 is returned to storage. Some text is printed to tell the player what just happened. The entire statement closes with EXIT, since we don’t want anything else to happen, including the move the player just made that triggered this action.<<<
  206.  
  207. The short statement below prints a line of periods before the object descriptions, when any of the immobile objects in the scene are clicked:
  208.  
  209. IF{CLICK$=SCREEN.1}OR{CLICK$=SCREEN.2}OR{CLICK$=CREATURE.BUTTON}OR{CLICK$=ROACH.1}OR{CLICK$=STAIRS.1}THEN
  210.     PRINT{...................................}
  211. END
  212.  
  213. Since the player isn’t allowed to operate the monitor on the far wall while the cockroach or the giant roach are in the scene, the special code below tests for those conditions when the player clicks on the monitor or the button that turns it on:
  214.  
  215. IF{CLICK$=SCREEN.}OR{CLICK$=CREATURE.BUTTON}THEN
  216.     IF{COCKROACH=SCENE@}THEN
  217.         PRINT{You can't reach it, the cockroach is blocking the way.}
  218.     EXIT
  219.     IF{ROACH.1=SCENE@}THEN
  220.         PRINT{You can't reach it, the Big Mama Roach blocks the way.}
  221.     EXIT
  222.     IF{CLICK$=CREATURE.BUTTON}THEN
  223.         MOVE{CREATURE.BUTTON}TO{STORAGE@}
  224.         SOUND{BUTTON-SND.1}
  225.         MOVE{CREATURE.BUTTON}TO{SCENE@}
  226.         IF{SCREEN.2=SCENE@}THEN
  227.             MOVE{SCREEN.2}TO{STORAGE@}
  228.             PRINT{The monitor displays a picture of a rocket.}
  229.         EXIT
  230.     EXIT
  231. END
  232.  
  233. >>>The first statement (above) detects mouse clicks on the monitor (SCREEN.1) and the monitor button (CREATURE.BUTTON). If either of these objects has been clicked, then a nested statement determines if the “cockroach” Character is in the scene. If so, then text is printed telling the player that he can’t reach that object because the cockroach is blocking the way. The statement closes with EXIT, to stop the program before the mouse click can trigger any other actions. If the cockroach is not in the scene, that statement is skipped.
  234.  
  235. The second nested statement detects the presence of the ROACH.1 object, the “Big Mama Roach.” If ROACH.1 is in the scene, text is printed telling the player that he can’t reach the object because the “Big Mama” roach is blocking the way. This statement also closes with EXIT to prevent any further action.
  236.  
  237. If neither the cockroach or the ROACH.1 object are in the scene, both statements are ignored and the program can continue to handle the mouse clicks normally. One more nested statement detects clicks on the CREATURE.BUTTON. If that object has been clicked, then the monitor will be turned on, or turned off, depending on it’s current condition. The innermost statement determines whether the monitor is off, and if so, turns it on by moving the darkened screen image (SCREEN.2) to storage. If SCREEN.2 is already in storage, it will then be moved back to the scene, to create the effect of the monitor being turned off.<<<
  238.  
  239.  
  240. The magic word is HAKO, which the player can deduce from clues provided in the game. If the player enters this word while the rocket is visible on the monitor, a secret door opens, revealing the staircase. If the door is already open, using the magic word will close it:
  241.  
  242. IF{TEXT$=HAKO}THEN
  243.     PRINT{...................................}
  244.     IF{SCREEN.2>SCENE@}THEN
  245.         SOUND{BOING}
  246.         IF{STAIRS.2=SCENE@}THEN
  247.             MOVE{STAIRS.2}TO{STORAGE@}
  248.             PRINT{A passage suddenly appears in the wall! There is a stairway leading UP.}
  249.         EXIT
  250.         MOVE{STAIRS.2}TO{SCENE@}
  251.         PRINT{The stairway is hidden once again.}
  252.     EXIT
  253. END
  254.  
  255. >>>The first statement (above) detects entry of the word “HAKO.” Since the word is only effective when the rocket is visible, a nested statement checks to see if object SCREEN.2 is not in the scene, which means the monitor is on and the rocket is visible. If this is the case, then a magic sound is played, and another statement checks to see if the Object STAIRS.2 is in the scene. If so, then STAIRS.2 is moved to storage, and text is printed telling the player that a secret stairway has opened up. If STAIRS.2 is already in storage, then it is returned to the scene, hiding the stairway once again. The original “HAKO” statement closes with END, so if the rocket is not visible, the program will continue until it reachs the default “HAKO” statement in the Global code.<<<
  256.  
  257.  
  258. The next statement controls the player’s movement when he enters the word “UP.” If the stairway is visible, the player is moved to the next scene, titled “Toll Booth.” If the stairway is NOT visible, the inner statement is ignored, and the statement closes with END, allowing the program to reach the default in the Global code, “You can’t go up here.” 
  259.  
  260. IF{TEXT$=UP}THEN
  261.     IF{STAIRS.2>SCENE@}THEN
  262.         MOVE{PLAYER@}TO{TOLL BOOTH}
  263.     EXIT
  264. END
  265.  
  266.  
  267. Since the “Big Mama” roach is an Object, not a Character, attacks against it must be dealt with in the scene code. The following section of code handles any attempt to attack the roach:
  268.  
  269. IF{TEXT$=SHOOT}OR{TEXT$=FIRE}OR{TEXT$=SWING}OR{TEXT$=THROW}OR{TEXT$=HIT}OR{TEXT$=KICK}THEN
  270.     PRINT{...................................}
  271.     IF{ROACH.1=SCENE@}THEN
  272.         IF{TEXT$=SHOOT}OR{TEXT$=FIRE}THEN
  273.             IF{PISTOL>PLAYER@}THEN
  274.                 PRINT{You don't have a gun.}
  275.             EXIT
  276.             SOUND{GUNSHOT}
  277.             SOUND{ROAR}
  278.             PRINT{Your bullet just bounces off the roach's thick exoskeleton!}
  279.             PRINT{The Big Mama Roach snaps her mandibles at you!}
  280.             IF{RANDOM#>35}THEN
  281.                 SOUND{SMACK}
  282.                 PRINT{A hit! The razor sharp pincers tear your flesh!}
  283.                 LET{PHYS.HIT.CUR#=PHYS.HIT.CUR#-40}
  284.             EXIT
  285.             SOUND{SWISH}
  286.             PRINT{A miss!}
  287.         EXIT
  288.         SOUND{SMACK}
  289.         PRINT{Your attack fails! The blasted bug's exoskeleton is too tough!}
  290.         PRINT{The Big Mama Roach snaps her mandibles at you!}
  291.         IF{RANDOM#>15}THEN
  292.             SOUND{SMACK}
  293.             PRINT{A hit! The razor sharp pincers tear your flesh!}
  294.             LET{PHYS.HIT.CUR#=PHYS.HIT.CUR#-45}
  295.         EXIT
  296.         SOUND{SWISH}
  297.         PRINT{A miss!}
  298.     EXIT
  299. END
  300.  
  301. >>>The first statement (above) detects the entry of any words associated with an attack, such as shoot, fire (as in “fire pistol”), or swing (as in “swing fist). If any of these words are entered, then a nested statement determines whether ROACH.1 is in the scene. If so, then another statement is used to weed out other attack verbs, testing for those that involve a gun: “shoot” and “fire.” If either of these is used, then another nested statement checks to see if the player has the pistol, and if not, text is printed telling him that he doesn’t have a gun. If he does have the pistol, that statement is skipped, and a gunshot sound is played, followed by the roar of the killer roach. Text is printed telling the player that his shot has failed to penetrate the bug’s thick exoskeleton. Next, the roach’s counter-attack takes place. A statement creates a random number between 1 and 100. If the number is greater than 35, the bug’s attack is successful, and the player’s current physical hit points are reduced. The variable that represents the player’s current physical hit points is PHYS.HIT.CUR#
  302.  
  303. If the random number not greater than 35, then the roach’s attack is a miss, and text is printed telling the player this.
  304.  
  305. If the player has attacked using anything other than the pistol, the “shoot/fire” statement is ignored, and text is printed telling the player that his attack has failed. Then the roach’s counter-attack code is executed. It is the same counter-attack code that was used in the “shooting” attack, but with a higher damage to the player’s hit points. As before, a random number is selected, and if it is higher than 15, the bug’s counter-attack strikes the player. (Since the player is attacking with hand weapons instead of a gun, the probability of being hit by a counter-attack is higher.) If the random number is not greater than 15, then the bug’s attack has missed. 
  306.  
  307. The beginning “attack” statement closes with END. If the ROACH.1 object is not in the scene, all the nested statements are ignored, and the program handles any of the attack verbs normally.<<<
  308.  
  309.  
  310. Next, the code below handles any attempt the player might make to talk to either the “Big Mama” roach or the cockroach:
  311.  
  312. IF{TEXT$=TALK}THEN
  313.     PRINT{...................................}
  314.     IF{ROACH.1=SCENE@}THEN
  315.         PRINT{BIG MAMA: "The only thing I have to say is, 'Die, soft one!'"}
  316.     EXIT
  317.     IF{COCKROACH=SCENE@}THEN
  318.         PRINT{It's just a little cockroach, it can't talk.}
  319.     EXIT
  320. END
  321.  
  322.  
  323.  
  324. The code below handles any attempt the player makes to give things to the “Big Mama” roach. (Since the cockroach is an actual Character, offerings to it are handled automatically by the program.) If the player offers the clipping to the giant roach, it reads the clipping, calls the number on the ad, and leaves to accept the job advertised in the clipping. Anything else that is offered to the giant roach is harshly rejected:
  325.  
  326. IF{TEXT$=GIVE}OR{TEXT$=OFFER}THEN
  327.     PRINT{...................................}
  328.     IF{ROACH.1=SCENE@}THEN
  329.         IF{TEXT$=CLIPPING}OR{TEXT$=AD}THEN
  330.             IF{CLIPPING>PLAYER@}THEN
  331.                 PRINT{You don't have the clipping.}
  332.             EXIT
  333.             MOVE{CLIPPING}TO{STORAGE@}
  334.             MOVE{PHONE.1}TO{SCENE@}
  335.             PRINT{The Roach takes the clipping and reads it eagerly, then whips out a cellular phone.}
  336.             PRINT{BIG MAMA: "Hello, Mr. Shapiro? About that job... you bet I'm qualified... yeah, let's do lunch."}
  337.             SOUND{TONES.2}
  338.             SOUND{SILENCE.1}
  339.             SOUND{SILENCE.1}
  340.             SOUND{SILENCE.1}
  341.             SOUND{SILENCE.1}
  342.             SOUND{SILENCE.1}
  343.             SOUND{SILENCE.1}
  344.             SOUND{SILENCE.1}
  345.             SOUND{SILENCE.1}
  346.             SOUND{SILENCE.1}
  347.             SOUND{SILENCE.1}
  348.             SOUND{SILENCE.1}
  349.             SOUND{SILENCE.1}
  350.             PRINT{BIG MAMA: "This is your lucky day, human. I was born for a job like that! See ya on CNN, baby!"}
  351.             MOVE{PHONE.1}TO{STORAGE@}
  352.             MOVE{ROACH.1}TO{STORAGE@}
  353.             PRINT{The Big Mama Roach puts away the phone, grabs her briefcase and Armani suit, and leaves.}
  354.         EXIT
  355.         PRINT{BIG MAMA: "Your pathetic offerings mean nothing to me, soft one! Only your death will bring me joy!"}
  356.     EXIT
  357. END
  358.  
  359. >>>The first statement (above) tests for entry of the words “give” or “offer.” If either of these words has been entered, then a nested statement tests for the presence of the object ROACH.1 in the scene. If the player makes an offer, and ROACH.1 is in the scene, then a nested statement checks to see if the player has also entered the word “clipping.” If this is true, then a statement checks to see if the player has the clipping, and if not, text is printed telling him that he doesn’t have the clipping. If the player has the clipping, that statement is ignored and rest of the “clipping” statement is executed. The clipping is moved to storage, and an object called PHONE.1 is moved to the scene. This object is a drawing of a cellular phone, positioned to appear in the roach’s hand, along with a drawing of the clipping in its other hand.   A bit of text is printed, then a dialing sound is played. This is followed by a sound that is just a half second of silence. The silent sound is repeated several times. The purpose of this is to “pause” the animation long enough for the player to see what has happened, and to read the text. Finally, text is printed explaining that the roach is leaving to take the job, and PHONE.1 and ROACH.1 are both moved to storage.
  360.  
  361. If the player has entered the word “give” or “offer” but is offering anything else besides the clipping, then the entire “clipping” statement is ignored. Text is printed indicating that the roach has rejected the player’s offering.
  362.  
  363. If the object ROACH.1 is not in the scene, all of the nested statements are skipped, and the “give/offer” statement closes with END, allowing the program to handle it normally.<<<
  364.  
  365.  
  366. The last section of code detects entry of the “search” command. A nested statement detects if the cockroach is in the scene, and if so, some text is displayed that explains the Character to the player. If the cockroach is not in the scene, the nested statement is skipped, and the “search” statement closes with END, so that the program will continue until it reaches the default ‘search” statement in the Global code:
  367.  
  368. IF{TEXT$=SEARCH}THEN
  369.     PRINT{...................................}
  370.     IF{COCKROACH=SCENE@}THEN
  371.         PRINT{The cockroach is a Character. It is a simple creature, capable of limited behavior such as fighting or running, and it's very weak and easy to kill.}
  372.         PRINT{This makes it perfect to use as a Character. A more complex creature should be an Object.}
  373.     EXIT
  374. END
  375.